"use strict";
/**
 * @name guide
 * 新手引导设置
 */



/**
 * @name step
 * @param int val 值
 * 新手引导设置
 */

module.exports.step = function rename() {
    let val = this.get('val', 'int');
    if (!val) {
        return this.error("val empty")
    }
    this.updater.role.set('gs', val)
    return this.updater.save();
};

/**
 * @name saveNoviceGuide
 * @param string groupId 引导分组ID
 * @param string sortId 排序ID
 * 存储新手引导
 */
exports.saveNoviceGuide = async function () {
    let groupId = this.get('groupId', 'string');
    let sortId = this.get('sortId', 'string');

    if (!groupId || !sortId) {
        return this.quick_error('M2saghge140', '参数错误');
    }
    let noviceConfig = this.config('novice', groupId);
    if (!noviceConfig) {
        return this.quick_error('新手引导分组配置不存在', groupId);
    }
    this.updater.role.key('noviceGuide');
    this.updater.role.key('lv');
    this.updater.role.key('stage')
    await this.updater.data();
    let noviceGuide = this.updater.role.get('noviceGuide') || {};

    for (let i in noviceConfig.Coll) {
        if (noviceConfig.Coll[i].noviceSort == sortId) {
            //判断星光体等级
            let lv = this.updater.role.get('lv');
            if (noviceConfig.Coll[i].axeLv > lv) {
                return this.quick_error('星光体等级不够');
            }
            //判断是否解锁关卡
            if (noviceConfig.Coll[i].levelID) {
                let stageConfig = this.config('stage', noviceConfig.Coll[i].levelID);
                let lastStage = this.updater.role.get('stage.' + stageConfig.stageType);
                if (lastStage < noviceConfig.Coll[i].levelID) {
                    return this.quick_error('该关卡未解锁', noviceConfig.Coll[i].levelID);
                }
            }
            noviceGuide[groupId] = sortId;
            this.updater.role.set('noviceGuide', noviceGuide);
            break;
        }
        if (parseInt(i) >= noviceConfig.Coll.length - 1) {
            return this.quick_error('引导排序ID不存在', sortId);
        }
    }

    return this.updater.save();


}